package com.victor.service;

import java.util.List;
import java.util.Set;

import com.github.pagehelper.PageInfo;
import com.victor.entity.finefood.Food;
import com.victor.entity.finefood.FoodMeal;
import com.victor.entity.finefood.FoodMealPhoto;
import com.victor.entity.finefood.FoodPhoto;
import com.victor.entity.finefood.FoodPhotoGroup;
import com.victor.entity.finefood.FoodType;
import com.victor.entity.happy.Happy;
import com.victor.entity.happy.HappyPhoto;
import com.victor.entity.happy.HappyPhotoGroup;
import com.victor.entity.happy.HappyTheme;
import com.victor.entity.happy.HappyThemePhoto;
import com.victor.entity.happy.HappyThemeTime;
import com.victor.entity.happy.HappyType;
import com.victor.entity.hotel.Hotel;
import com.victor.entity.hotel.HotelPhoto;
import com.victor.entity.hotel.HotelPhotoGroup;
import com.victor.entity.hotel.HotelRoom;
import com.victor.entity.hotel.HotelRoomExplain;
import com.victor.entity.hotel.HotelRoomLabel;
import com.victor.entity.hotel.HotelRoomPhoto;
import com.victor.entity.hotel.HotelType;

public interface PartnersService {
	// ------- 宾馆 --------------------------
	/**
	 * 获取宾馆列表--通过分类id和搜索内容
	 * 
	 * @param t_id
	 * @param search
	 * @return
	 */
	public List<Hotel> getHotelList(String t_id, String search);

	/**
	 * 查询宾馆详情
	 * 
	 * @param h_id
	 * @return
	 */
	public Hotel getHotelXQ(String h_id);

	/**
	 * 删除评论
	 * 
	 * @param c_id
	 * @return
	 */
	public boolean delHotelComment(String c_id);

	/**
	 * 添加宾馆
	 * 
	 * @param hotel
	 * @return
	 */
	public boolean addHotel(Hotel hotel);

	/**
	 * 删除宾馆
	 * 
	 * @param h_id
	 * @return
	 */
	public boolean delHotel(Integer h_id);

	/**
	 * 获取所有类型
	 * 
	 * @return
	 */
	public List<HotelType> getHotelType();

	/**
	 * 修改宾馆信息
	 * 
	 * @param hotel
	 * @return
	 */
	public boolean updHotel(Hotel hotel);

	/**
	 * 添加图片组
	 * 
	 * @param hotelPhotoGroup
	 * @return
	 */
	public boolean addHotelPhotoGroup(HotelPhotoGroup hotelPhotoGroup);

	/**
	 * 组内添加图片
	 * 
	 * @param hotelPhoto
	 * @return
	 */
	public boolean addHotelPhoto(HotelPhoto hotelPhoto);

	/**
	 * 删除组
	 * 
	 * @param g_id
	 * @return
	 */
	public boolean delHotelPhotoGroup(Integer g_id);

	/**
	 * 删除图片
	 * 
	 * @param p_id
	 * @return
	 */
	public boolean delHotelPhoto(String p_id);

	/**
	 * 获取宾馆房间列表(传宾馆id)
	 * 
	 * @param h_id
	 * @return
	 */
	public List<HotelRoom> getHotelRoomByHotelid(String h_id);

	/**
	 * 获取宾馆房间详情
	 * 
	 * @param r_id
	 * @return
	 */
	public HotelRoom getHotelRoomXQ(String r_id);

	/**
	 * 删除房间
	 * 
	 * @param r_id
	 * @return
	 */
	public boolean delRoom(Integer r_id);

	/**
	 * 添加房间信息返回id
	 * 
	 * @param hotelRoom
	 * @return
	 */
	public boolean addRoom(HotelRoom hotelRoom);

	/**
	 * 添加自定义标签list
	 * 
	 * @param hotelRoomLabel
	 */
	public boolean addHotelRoomLabel(HotelRoomLabel hotelRoomLabel);

	/**
	 * 添加预定说明list
	 * 
	 * @param hotelRoomExplain
	 */
	public boolean addHotelRoomExplain(HotelRoomExplain hotelRoomExplain);

	/**
	 * 添加图片list
	 * 
	 * @param hotelRoomPhoto
	 */
	public boolean addHotelRoomPhoto(HotelRoomPhoto hotelRoomPhoto);

	/**
	 * 修改房间信息
	 * 
	 * @param hotelRoom
	 * @return
	 */
	public boolean updRoom(HotelRoom hotelRoom);

	/**
	 * 添加房间图片
	 * 
	 * @param hotelRoomPhoto
	 * @return
	 */
	public boolean addRoomPhoto(HotelRoomPhoto hotelRoomPhoto);

	/**
	 * 删除房间图片
	 * 
	 * @param p_id
	 * @return
	 */
	public boolean delRoomPhoto(String p_id);

	/**
	 * 冻结
	 * 
	 * @param userids
	 * @return
	 */
	public boolean frozenHotel(Integer h_id, String h_frozen_cycle, String h_frozen_starttime, String h_frozen_endtime,
			String h_frozen_title, String h_frozen_details);

	// ---------- 美食 -------------------------------------
	/**
	 * 获取美食店铺列表--通过分类id和搜索内容
	 * 
	 * @param t_id
	 * @param search
	 * @return
	 */
	public List<Food> getFoodList(String t_id, String search);

	/**
	 * 获取美食店铺详情
	 * 
	 * @param f_id
	 * @return
	 */
	public Food getFoodXQ(String f_id);

	/**
	 * 删除评论
	 * 
	 * @param c_id
	 * @return
	 */
	public boolean delFoodComment(Integer c_id);

	/**
	 * 添加美食商家
	 * 
	 * @param food
	 * @return
	 */
	public boolean addFood(Food food);

	/**
	 * 删除美食商家
	 * 
	 * @param f_id
	 * @return
	 */
	public boolean delFood(Integer f_id);

	/**
	 * 获取所有类型
	 * 
	 * @return
	 */
	public List<FoodType> getFoodType();

	/**
	 * 修改美食商家
	 * 
	 * @param food
	 * @return
	 */
	public boolean updFood(Food food);

	/**
	 * 添加图片组
	 * 
	 * @param foodPhotoGroup
	 * @return
	 */
	public boolean addFoodPhotoGroup(FoodPhotoGroup foodPhotoGroup);

	/**
	 * 组内添加图片
	 * 
	 * @param foodPhoto
	 * @return
	 */
	public boolean addFoodPhoto(FoodPhoto foodPhoto);

	/**
	 * 删除组
	 * 
	 * @param g_id
	 * @return
	 */
	public boolean delFoodPhotoGroup(String g_id);

	/**
	 * 删除图片
	 * 
	 * @param p_id
	 * @return
	 */
	public boolean delFoodPhoto(Integer p_id);

	/**
	 * 获取美食列表(传美食商家id)
	 * 
	 * @param f_id
	 * @return
	 */
	public List<FoodMeal> getFoodMealByFoodid(String f_id);

	/**
	 * 获取美食详情
	 * 
	 * @param m_id
	 * @return
	 */
	public FoodMeal getFoodMealXQ(String m_id);

	/**
	 * 删除美食套餐
	 * 
	 * @param m_id
	 * @return
	 */
	public boolean delMeal(Integer m_id);

	/**
	 * 添加美食套餐
	 * 
	 * @param foodMeal
	 * @return
	 */
	public boolean addMeal(FoodMeal foodMeal);

	/**
	 * 添加美食套餐图片
	 * 
	 * @param foodMealPhoto
	 */
	public boolean addFoodMealPhoto(FoodMealPhoto foodMealPhoto);

	/**
	 * 修改美食套餐信息
	 * 
	 * @param foodMeal
	 * @return
	 */
	public boolean updMeal(FoodMeal foodMeal);

	/**
	 * 添加美食套餐图片
	 * 
	 * @param foodMealPhoto
	 * @return
	 */
	public boolean addMealPhoto(FoodMealPhoto foodMealPhoto);

	/**
	 * 删除美食套餐图片
	 * 
	 * @param p_id
	 * @return
	 */
	public boolean delMealPhoto(Integer p_id);

	/**
	 * 冻结
	 * 
	 * @param f_id
	 * @param frozen_cycle
	 * @param frozen_starttime
	 * @param frozen_endtime
	 * @param frozen_title
	 * @param frozen_details
	 * @return
	 */
	public boolean frozenFood(Integer f_id, String frozen_cycle, String frozen_starttime, String frozen_endtime,
			String frozen_title, String frozen_details);

	// ----- 娱乐 -----//
	/**
	 * 获取娱乐商家列表--通过分类id和搜索内容
	 * 
	 * @param t_id
	 * @param search
	 * @return
	 */
	public List<Happy> getHappyList(String t_id, String search);

	/**
	 * 查询娱乐商家详情
	 * 
	 * @param h_id
	 * @return
	 */
	public Happy getHappyXQ(String h_id);

	/**
	 * 删除评论
	 * 
	 * @param c_id
	 * @return
	 */
	public boolean delHappyComment(Integer c_id);

	/**
	 * 添加娱乐商家
	 * 
	 * @param happy
	 * @return
	 */
	public boolean addHappy(Happy happy);

	/**
	 * 删除美食商家
	 * 
	 * @param h_id
	 * @return
	 */
	public boolean delHappy(Integer h_id);

	/**
	 * 获取所有类型
	 * 
	 * @return
	 */
	public List<HappyType> getHappyType();

	/**
	 * 修改娱乐商家
	 * 
	 * @param happy
	 * @return
	 */
	public boolean updHappy(Happy happy);

	/**
	 * 添加图片组
	 * 
	 * @param happyPhotoGroup
	 * @return
	 */
	public boolean addHappyPhotoGroup(HappyPhotoGroup happyPhotoGroup);

	/**
	 * 组内添加图片
	 * 
	 * @param happyPhoto
	 * @return
	 */
	public boolean addHappyPhoto(HappyPhoto happyPhoto);

	/**
	 * 删除组
	 * 
	 * @param g_id
	 * @return
	 */
	public boolean delHappyPhotoGroup(Integer g_id);

	/**
	 * 删除图片
	 * 
	 * @param p_id
	 * @return
	 */
	public boolean delHappyPhoto(String p_id);

	/**
	 * 获取娱乐项目详情
	 * 
	 * @param t_id
	 * @return
	 */
	public HappyTheme getHappyThemeXQ(String t_id);

	/**
	 * 删除娱乐项目
	 * 
	 * @param t_id
	 * @return
	 */
	public boolean delTheme(Integer t_id);

	/**
	 * 添加娱乐项目
	 * 
	 * @param happyTheme
	 * @return
	 */
	public boolean addTheme(HappyTheme happyTheme);

	/**
	 * 添加图片list
	 * 
	 * @param happyThemePhoto
	 */
	public boolean addHappyThemePhoto(HappyThemePhoto happyThemePhoto);

	/**
	 * 添加时间表list
	 * 
	 * @param happyThemeTime
	 */
	public boolean addHappyThemeTime(HappyThemeTime happyThemeTime);

	/**
	 * 修改娱乐项目
	 * 
	 * @param happyTheme
	 * @return
	 */
	public boolean updTheme(HappyTheme happyTheme);

	/**
	 * 添加娱乐项目图片
	 * 
	 * @param happyThemePhoto
	 * @return
	 */
	public boolean addThemePhoto(HappyThemePhoto happyThemePhoto);

	/**
	 * 删除娱乐项目图片
	 * 
	 * @param tp_id
	 * @return
	 */
	public boolean delThemePhoto(Integer tp_id);

	/**
	 * 添加娱乐项目时间段
	 * 
	 * @param happyThemeTime
	 * @return
	 */
	public boolean addThemeTime(HappyThemeTime happyThemeTime);

	/**
	 * 删除娱乐项目图片
	 * 
	 * @param ti_id
	 * @return
	 */
	public boolean delThemeTime(Integer ti_id);

	/**
	 * 冻结
	 * 
	 * @param h_id
	 * @param frozen_cycle
	 * @param frozen_starttime
	 * @param frozen_endtime
	 * @param frozen_title
	 * @param frozen_details
	 * @return
	 */
	public boolean frozenHappy(Integer h_id, String frozen_cycle, String frozen_starttime, String frozen_endtime,
			String frozen_title, String frozen_details);

	/**
	 * 多字段搜索美食
	 * 
	 * @param search
	 * @return
	 */
	public PageInfo<Food> selFood(String search, int page, int row);

	/**
	 * 多字段搜索娱乐
	 * 
	 * @param search
	 * @param page
	 * @param row
	 * @return
	 */
	public PageInfo<Happy> selHappy(String search, int page, int row);

	/**
	 * 多字段搜索酒店
	 * 
	 * @param search
	 * @param page
	 * @param row
	 * @return
	 */
	public PageInfo<Hotel> selHotel(String search, int page, int row);

	/**
	 * app获取美食列表
	 * 
	 * @param t_id        类别id
	 * @param search      搜索内容
	 * @param f_theme     主题类别
	 * @param price_start 价格区间低价
	 * @param price_end   价格区间顶价
	 * @param upordown    价格升序或降序 0随机 1升序 2降序
	 * @param service     服务设施 暂无 
	 * @return
	 */
	public List<Food> getFinefood(String t_id, String search, String f_theme, String price_start, String price_end,
			String upordown, String service);

	/**
	 * 获取所有主题类别
	 * 
	 * @return
	 */
	public Set<String> getF_themeList();

	/**
	 * app获取宾馆列表
	 * 
	 * @param t_id 类别id
	 * @param search 搜索内容
	 * @param price_start 价格区间低价
	 * @param price_end 价格区间顶价
	 * @param upordown 价格升序或降序 0随机 1升序 2降序
	 * @param h_star 星级
	 * @return
	 */
	public List<Hotel> getHotel(String t_id, String search, String price_start, String price_end, String upordown,
			String h_star);

	/**
	 * app获取娱乐商家列表
	 * @param t_id 类别id
	 * @param search 搜索内容
	 * @param upordown 价格升序或降序 0随机 1升序 2降序
	 * @param installtime 发布时间排序 0随机 1升序 2降序
	 * @return
	 */
	public List<Happy> getHappy(String t_id, String search, String upordown, String installtime);

}
